<template>
	<svg aria-hidden="true" class="svg-icon">
		<use :xlink:href="symbolId" :fill="color" />
	</svg>
</template>

<script setup lang="ts" name="SvgIcon">
import { computed } from 'vue'

const props = defineProps({
	prefix: {
		type: String,
		default: 'icon'
	},
	iconClass: {
		type: String,
		required: false
	},
	color: {
		type: String,
		default: ''
	}
})

const symbolId = computed(() => `#${props.prefix}-${props.iconClass}`)
</script>

<style scoped lang="scss">
.svg-icon {
	width: 1em;
	height: 1em;
	vertical-align: -0.15em;
	overflow: hidden;
	fill: currentColor;

	&:focus {
		outline: unset;
	}
}
</style>
